\documentclass[UTF8]{ctexart}
\usepackage{listings} 
\usepackage{xcolor}
\usepackage{fancyhdr}%设置页脚页眉需要的包
\pagestyle{fancy}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{tikz}
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{xeCJK}
\usepackage{graphicx}
\usepackage{fullpage}
\usepackage{float}
\usepackage{gnuplottex}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{verbatimbox}
\usepackage{amsfonts,amssymb} 
\usepackage[ruled,linesnumbered]{algorithm2e}
\usepackage[colorlinks,linkcolor=blue,citecolor=blue]{hyperref}
\usepackage{cite}
\CTEXsetup[format={\Large\bfseries}]{section}
\newtheorem{example}{例}             % 整体编号
\newtheorem{theorem}{定理}[section]  % 按 section 编号
\newtheorem{definition}{定义}
\newtheorem{axiom}{公理}
\newtheorem{property}{性质}
\newtheorem{proposition}{命题}
\newtheorem{lemma}{引理}
\newtheorem{corollary}{推论}
\newtheorem{remark}{注解}
\newtheorem{condition}{条件}
\newtheorem{conclusion}{结论}
\newtheorem{assumption}{假设}
\newcommand{\enabstractname}{Abstract}
\newenvironment{enabstract}{%
    \par\small
    \noindent\mbox{}\hfill{\bfseries \enabstractname}\hfill\mbox{}\par
    \vskip 2.5ex}{\par\vskip 2.5ex}
\usetikzlibrary{positioning, shapes.geometric}
\lstset{
  language=C++,
  frame=shadowbox,
  rulesepcolor=\color{red!20!green!20!blue!20},
  keywordstyle=\color{blue!90}\bfseries,
  commentstyle=\color{red!10!green!70}\textit,
  showstringspaces=false,
  numbers=left,
  numberstyle=\tiny,
  stringstyle=\ttfamily,
  breaklines=true,
  extendedchars=false,
  texcl=true}

\title{Project}

\author{韩骐骏 \\ (数学科学学院)信息与计算科学3200103585}

\begin{document}

\maketitle

\section{A}
\subsection{Solution}
A题中分别采用ppform类和Bspline类对给定函数的插值点进行插值，可以在代码中自行将$N$修改来达到不同效果。在测试时修改的$N$越大，拟合的效果越好。这里仅展示$N=41$时的效果（如图），图1中展示了ppform的线性插值和完全样条插值和Bspline的完全样条插值，可见并没有出现龙格现象。图2展示了将局部区域放大后的样子，可见完全样条插值相比线性插值更加贴合原函数。当选取$N=41$时对每个区间计算最大误差后得到ppform的线性插值和Bspline的完全样条插值的最大误差分别为$0.01042853,0.00962440$。线性插值和完全样条插值的收敛阶数分别为$2,4$。
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picA1.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picA2.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}

\section{B}
\subsection{Solution}
代码中已经实现Bspline的线性插值、二次插值和三次插值。

\section{C}
\subsection{Solution}
插值结果见图像，其中图3为用线性插值和三次样条在$t_i=-5,-4,...,4,5$上进行插值的结果，图4为用二次样条在$t_i=-4.5,-3.5,...,4.5$上进行插值的结果。由于我在三次样条推导的过程中应该出现了一些问题，导致三次样条的结果反而不如二次样条好（可见图3中三次样条在$x<0$时尚且还可以，然而当$x>0$时就歪歪扭扭）。但是当我自己将插值点调到100个以上时，三次样条插值的结果又比二次样条好了。
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picC1.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picC2.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}

\section{D}
\subsection{Solution}
误差计算见代码。

\section{E}
\subsection{Solution}
由于时间原因，这里只选取$N=100$时的情况。如图为采用Curve类对心形函数进行插值后的结果，图5为整体拟合结果，图6为局部图，可见拟合效果较好。
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picE1.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}
\begin{figure}[H]
    \centering
    \includegraphics[width=15cm]{picE2.png}
    \caption{Dendrogram of agnes}
    \label{fig:galaxy}
\end{figure}

\end{document}
